<?php
 //require_once("config.php"); 
 //require_once(DIR_ROOT . LIB . SL . "Sess.class.php");

 require_once(dirname(__FILE__). DIRECTORY_SEPARATOR . 'classes' . DIRECTORY_SEPARATOR . "session.php");
 
 Session::start();

 $width = 150;                  //Ширина изображения
 $height = 60;                  //Высота изображения
 $font_size = 17.5;   			//Размер шрифта
 $let_amount = 6;               //Количество символов, которые нужно набрать
 $fon_let_amount = 30;          //Количество символов, которые находятся на фоне
 $path_fonts = 'fonts/';        //Путь к шрифтам
 
 
 //набор символов
 $letters = array('a','b','c','d','e','f','g','h','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z','2','3','4','5','6','7','9');
 //цвета
 $colors = array('10','30','50','70','90','110','130','150','170','190','210');
 
 $src = imagecreatetruecolor($width,$height); //создаем изображение  
 $fon = imagecolorallocate($src,255,255,255); //создаем фон
 imagefill($src,0,0,$fon);					  //заливаем изображение фоном
 
 $fonts = array();
 $dir=opendir($path_fonts);
 while($fontName = readdir($dir))
 {
   if($fontName != "." && $fontName != "..")
   {
     $fonts[] = $fontName;
   }
 }
 closedir($dir);
 
 for($i=0;$i<$fon_let_amount;$i++)			//добавляем на фон буковки
 {
	//случайный цвет
   $color = imagecolorallocatealpha($src,rand(0,255),rand(0,255),rand(0,255),100); 
   //случайный шрифт 
   $font = $path_fonts.$fonts[rand(0,sizeof($fonts)-1)];
   //случайный символ
   $letter = $letters[rand(0,sizeof($letters)-1)];
   //случайный размер 
   $size = rand($font_size-2,$font_size+2);
   imagettftext($src,$size,rand(0,45),
				rand($width*0.1,$width-$width*0.1),
				rand($height*0.2,$height),$color,$font,$letter);
 }
 
 for($i=0;$i<$let_amount;$i++)				//то же самое для основных букв
 {
   $color = imagecolorallocatealpha($src,$colors[rand(0,sizeof($colors)-1)],
									$colors[rand(0,sizeof($colors)-1)],
									$colors[rand(0,sizeof($colors)-1)],rand(20,40)); 
   $font = $path_fonts.$fonts[rand(0,sizeof($fonts)-1)];
   $letter = $letters[rand(0,sizeof($letters)-1)];
   $size = rand($font_size*2.1-2,$font_size*2.1+2);
   $x = ($i+1)*$font_size + rand(4,7);	//даем каждому символу случайное смещение
   $y = (($height*2)/3) + rand(0,5);
   $cod[] = $letter;   					//запоминаем код
   imagettftext($src,$size,rand(0,15),$x,$y,$color,$font,$letter);
 }
 
 Session::set("captcha" , implode('',$cod));	//переводим код в строку
 
 header ("Content-type: image/gif"); 		//выводим готовую картинку
 imagegif($src);
?> 